﻿Imports System.Data.SqlClient

Public Class UsuarioDAO

    Public Function insertar(ByVal modelo As Usuario) As Usuario
        Try
            Dim cn As New SqlConnection(ConexionBD.obtenerCadenaConexion())
            cn.Open()

            Dim sql = "INSERT INTO USUARIO (idUsuario, Rol_idRol, nombre, correo, paterno, materno, dni, direccion, fecha_naci, estado, clave, telefono, ciudad) VALUES (@VALOR1, @VALOR2, @VALOR3, @VALOR4, @VALOR5, @VALOR6, @VALOR7, @VALOR8, @VALOR9, @VALOR10, @VALOR11, @VALOR12, @VALOR13)"

            Dim cmd As New SqlCommand(sql, cn)
            cmd.Parameters.AddWithValue("@VALOR1", modelo.idUsuario)
            cmd.Parameters.AddWithValue("@VALOR2", modelo.idRol)
            cmd.Parameters.AddWithValue("@VALOR3", modelo.nombre)
            cmd.Parameters.AddWithValue("@VALOR4", modelo.correo)
            cmd.Parameters.AddWithValue("@VALOR5", modelo.paterno)
            cmd.Parameters.AddWithValue("@VALOR6", modelo.materno)
            cmd.Parameters.AddWithValue("@VALOR7", modelo.dni)
            cmd.Parameters.AddWithValue("@VALOR8", modelo.direccion)
            cmd.Parameters.AddWithValue("@VALOR9", modelo.fechanaci)
            cmd.Parameters.AddWithValue("@VALOR10", modelo.estado)
            cmd.Parameters.AddWithValue("@VALOR11", modelo.clave)
            cmd.Parameters.AddWithValue("@VALOR12", modelo.telefono)
            cmd.Parameters.AddWithValue("@VALOR13", modelo.ciudad)

            Dim afectados = cmd.ExecuteNonQuery

            If afectados <> 1 Then
                Throw New DAOExcepcion("UsuarioDAO: No insertó")
            End If

            ' LEER EL ULTIMO ID
            sql = "SELECT @@IDENTITY"
            cmd = New SqlCommand(sql, cn)
            Dim dr As SqlDataReader
            dr = cmd.ExecuteReader()
            If dr.Read Then
                modelo.idUsuario = CType(dr(0), Integer)
            End If

            dr.Close()
            cn.Close()

        Catch ex As Exception
            Throw New DAOExcepcion(ex.ToString)
        End Try

        Return modelo

    End Function
End Class
